4546342d4adcbae816ce1bb1a4b8c18431dc7552,strutsclipse-plugin/src/com/amashchenko/eclipse/strutsclipse/ProjectUtil.java,ProjectUtil,findResources,#IDocument#String#String#String#,194

Before Change


				final IProject project = javaProject.getProject();
				final String outputFolder = javaProject.getOutputLocation()
						.makeRelativeTo(project.getFullPath()).segment(0);
				project.accept(new IResourceVisitor() {
					@Override
					public boolean visit(IResource resource)
							throws CoreException {
						// don't visit output folder
						if (resource.getType() == IResource.FOLDER
								&& resource.getProjectRelativePath().segment(0)
										.equals(outputFolder)) {
							return false;
						}
						if (resource.isAccessible()
								&& resource.getType() == IResource.FILE
								&& fileExtension.equalsIgnoreCase(resource
										.getFileExtension())) {
							boolean addToList = false;
							if (contentType == null) {
								addToList = resource.getName()
										.toLowerCase(Locale.ROOT)
										.contains(fileName);
							} else {
								IFile file = project.getFile(resource
										.getProjectRelativePath());
								IContentDescription descrp = file
										.getContentDescription();
								addToList = descrp.getContentType().isKindOf(
										contentType);
							}

							if (addToList) {
								try {
									provider.connect(resource);
									IDocument document = provider
											.getDocument(resource);
									provider.disconnect(resource);

									resources.add(new ResourceDocument(
											resource, document));
								} catch (CoreException e) {
									e.printStackTrace();
								}
							}
						}
						return true;
					}
				});
			}
		} catch (CoreException e) {
			e.printStackTrace();

After Change


				IVirtualComponent rootComponent = ComponentCore
						.createComponent(project);

				if (rootComponent != null) {
					IVirtualFolder folder = rootComponent.getRootFolder();

					if (folderName != null) {
						folder = folder.getFolder(folderName);
					}

					if (folder != null && folder.exists()) {
						IResource[] resources = folder.getUnderlyingResources();
						if (resources != null) {
							final IDocumentProvider provider = new TextFileDocumentProvider();
							for (final IResource res : resources) {
								res.accept(new IResourceVisitor() {
									@Override
									public boolean visit(IResource resource)
											throws CoreException {
										if (resource.isAccessible()
												&& resource.getType() == IResource.FILE
												&& resource.getFileExtension() != null
												&& fileExtensions
														.contains(resource
																.getFileExtension()
																.toLowerCase(
																		Locale.ROOT))) {
											boolean addToList = false;
											if (contentTypeId == null) {
												addToList = true;
											} else if (contentType != null) {
												IFile file = project.getFile(resource
														.getProjectRelativePath());
												IContentDescription descrp = file
														.getContentDescription();
												addToList = descrp
														.getContentType()
														.isKindOf(contentType);
											} else if (fileName != null
													&& resource
															.getName()
															.toLowerCase(
																	Locale.ROOT)
															.contains(fileName)) {
												addToList = true;
											}

											if (addToList) {
												IPath path = resource
														.getProjectRelativePath()
														.makeRelativeTo(
																res.getProjectRelativePath());
												if (makeAbsolute) {
													path = path.makeAbsolute();
												}

												try {
													provider.connect(resource);
													IDocument document = provider
															.getDocument(resource);
													provider.disconnect(resource);

													result.add(new ResourceDocument(
															resource, document,
															path.toString()));
												} catch (CoreException e) {
													e.printStackTrace();
												}
											}
										}
										return true;
									}
								});
							}
						}
					}